package com.example.warehouse_management.service;

import com.example.warehouse_management.entity.User;

/**
 * 用户业务层接口
 * 定义与用户相关的业务逻辑规范，作为控制器与数据访问层之间的桥梁，封装用户相关的业务处理逻辑
 */
public interface UserService {

    /**
     * 根据用户账号查询用户信息的业务方法
     * 主要用于登录验证、用户信息查询等场景，封装了与用户账号查询相关的业务逻辑（如数据校验、权限过滤等）
     *
     * @param userCode 用户账号（业务系统中唯一标识用户的账号，如登录名、工号等）
     * @return User实体对象：包含用户的完整信息（如用户ID、账号、密码、姓名、状态、角色等）；
     *         若未查询到对应账号的用户（或账号已被删除/禁用），则返回null
     * @note 该方法通常会调用数据访问层（UserMapper）的findUserByCode方法获取数据，
     *       并可在此基础上添加业务校验（如判断用户状态是否有效）、缓存处理等逻辑
     */
    User queryUserByCode(String userCode);
}